草庐IT

HTTP 400 错误

全部标签

parsing - 允许多次读取 http.Request.Body 的正确方法是什么

我想多次访问http.Request的Body。第一次发生在我的身份验证中间件中,它使用它来重新创建sha256签名。第二次发生在稍后,我将其解析为JSON以便在我的数据库中使用。我知道您不能多次从io.Reader(或本例中的io.ReadCloser)读取数据。我找到了一个answertoanotherquestion有一个解决方案:Whenyoufirstreadthebody,youhavetostoreitsoonceyou'redonewithit,youcansetanewio.ReadCloserastherequestbodyconstructedfromtheori

curl - net/http vs curl - 为什么在 curl 不超时的情况下超时?

我有一段代码检查http/s端点的状态和加载时间。然后我会为每个顶级页面检查1级href,以检查页面引用的所有内容是否也加载了200。(我查了50个顶级页面,每个顶级页面平均有8个链接)我通过一些goroutines(25)和WaitGroup检查顶级页面。对于1级页面,我尝试了另一个gouroutines+waitgroup,然后是一个直接的forloop(只是为了比较)。在这些1级页面上,我收到了很多“CLient.Timeoutexceededwhilewaitingheaders”错误。当我抓取这样一个url,并立即使用curl重试时,它会完美加载(带有curl)页眉超时的页面

go - 当 HTTP 客户端向不可用的 URL 发出请求时如何捕捉 panic ?

我需要向某些URL发出请求。有可能他们中的某个人不可用。这对我来说没问题,我只想忽略这些URL。我的问题是我无法捕获发生的错误。我收到一条错误消息:2018/01/1318:46:24Gethttp://fakesite.com:dialtcp[::1]:8084:connectex:Noconnectioncouldbemadebecausethetargetmachineactivelyrefusedit.我的示例代码是:packagemainimport("fmt""log""net/http""io/ioutil")funcmain(){c:=make(chanstring,1

http覆盖golang中的http头代码而json编码有错误

考虑这个场景!http请求执行成功后,json编码出错,如何覆盖header代码funcwriteResp(whttp.ResponseWriter,codeint,datainterface{}){w.Header().Set("Content-Type","application/json")//HereIsetthestatusto201StatusCreatedw.WriteHeader(code)s:=success{Data:data}//whatifthereisanerrorhereandwanttooverridethestatusto5xxerror//howtoh

mysql - 如何处理 Golang 中插入重复键的错误?

当我向数据库中插入一条记录时,它正在保存,但我的问题是在Golang中我无法处理错误。假设现在我在控制台中收到类似重复键的错误,但我想在JSON响应中处理它,我将如何处理此错误?这是我的代码:funcmain(){router:=gin.New()router.Use(gin.Logger())router.Use(gin.Recovery())db,err:=sql.Open("mysql","root:password@tcp(gpstest.cksiqniek8yk.ap-south-1.rds.amazonaws.com:3306)/tech")iferr!=nil{fmt.P

go - 使用Iris将HTTP转发到https

我正试图找出如何用“ris”和https://iris-go.com/v10/recipe#Secure57库构建我的golang应用程序来实现这一点。应用程序托管在gce上,带有一个工作的ssl负载平衡器。这是我的应用程序:s:=secure.New(secure.Options{AllowedHosts:[]string{"mydomain.io"},SSLRedirect:true,SSLTemporaryRedirect:false,SSLHost:"",SSLProxyHeaders:map[string]string{"X-Forwarded-Proto":"https"}

go - 尝试验证虚拟机订单时收到错误

当我运行以下代码时,出现错误SoftLayer_Exception_InvalidValue:为“blockDevices.device”提供的值无效。必须为所有block设备提供设备号。(HTTP200)我初始化block设备的方式有什么问题?我看到了Virtual_Disk_Image类型的字段Id和Uuid,但没有数字。从描述来看,这些值听起来像是在创建后设置的。https://github.com/softlayer/softlayer-go/blob/master/datatypes/virtual.go#L91funcverifyOrderTest(cCreds)(stri

go - Checkout.com 返回错误无效的付款货币

我正在研究Checkout.comAPIintegrationforgolang.我为Sofort和iDEAL等几个替代vendor选择了checkout.com。它们都有很好的文档:SofortiDEAL但是示例中的代码返回相同的错误curlhttps://sandbox.checkout.com/api2/v2/tokens/payment\-H"Authorization:sk_test_..."\-H"Content-Type:application/json"\-XPOST\-d'{"email":"test@email.com","value":1000,"currency

http - Go httpClient 内存泄漏

更新代码您好,我在httpClient中有内存泄漏,我添加了sync.WaitGroup,现在我看到带有httpClient的goroutine没有关闭。如何解决?funccheckProxySOCKS(proxstring,cchanQR,wg*sync.WaitGroup)(errerror){deferwg.Done()dialer,_:=proxy.SOCKS5("tcp",prox,nil,proxy.Direct)timeout:=time.Duration(2*time.Second)httpClient:=&http.Client{Timeout:timeout,Tra

go-ini 包键值分隔符未找到错误

我正在使用go-ini包来解析Ansible-playbook文件。在尝试执行以下代码时,出现错误消息,key-valuedelimiternotfound:172.16.1.2Go代码:conf,err:=ini.Load(inventoryFilePath)iferr!=nil{returnerrors.New("Unabletoreadfile:"+err.Error())}nodeSection,err:=conf.GetSection("vm_master")iferr!=nil{returnerrors.New("Unabletogetsection:"+err.Error